<?php
/*
 * Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

namespace TencentCloud\Faceid\V20180301\Models;

use TencentCloud\Common\AbstractModel;

/**
 * @method string getDetectInfo() 获取JSON字符串。
 * {
 * // 文本类信息
 * "Text": {
 * "ErrCode": null,      // 本次核身最终结果。0为成功
 * "ErrMsg": null,       // 本次核身最终结果信息描述。
 * "IdCard": "",         // 本次核身最终获得的身份证号。
 * "Name": "",           // 本次核身最终获得的姓名。
 * "OcrNation": null,    // ocr阶段获取的民族
 * "OcrAddress": null,   // ocr阶段获取的地址
 * "OcrBirth": null,     // ocr阶段获取的出生信息
 * "OcrAuthority": null, // ocr阶段获取的证件签发机关
 * "OcrValidDate": null, // ocr阶段获取的证件有效期
 * "OcrName": null,      // ocr阶段获取的姓名
 * "OcrIdCard": null,    // ocr阶段获取的身份证号
 * "OcrGender": null,    // ocr阶段获取的性别
 * "LiveStatus": null,   // 活体检测阶段的错误码。0为成功
 * "LiveMsg": null,      // 活体检测阶段的错误信息
 * "Comparestatus": null,// 一比一阶段的错误码。0为成功
 * "Comparemsg": null,   // 一比一阶段的错误信息
 * "Location": null, // 地理位置信息
 * "Extra": "",          // DetectAuth结果传进来的Extra信息
 * "Detail": {           // 活体一比一信息详情
 * "LivenessData": []
 * }
 * },
 * // 身份证正反面照片Base64
 * "IdCardData": {
 * "OcrFront": null,
 * "OcrBack": null
 * },
 * // 视频最佳帧截图Base64
 * "BestFrame": {
 * "BestFrame": null
 * },
 * // 活体视频Base64
 * "VideoData": {
 * "LivenessVideo": null
 * }
 * }
 * @method void setDetectInfo(string $DetectInfo) 设置JSON字符串。
 * {
 * // 文本类信息
 * "Text": {
 * "ErrCode": null,      // 本次核身最终结果。0为成功
 * "ErrMsg": null,       // 本次核身最终结果信息描述。
 * "IdCard": "",         // 本次核身最终获得的身份证号。
 * "Name": "",           // 本次核身最终获得的姓名。
 * "OcrNation": null,    // ocr阶段获取的民族
 * "OcrAddress": null,   // ocr阶段获取的地址
 * "OcrBirth": null,     // ocr阶段获取的出生信息
 * "OcrAuthority": null, // ocr阶段获取的证件签发机关
 * "OcrValidDate": null, // ocr阶段获取的证件有效期
 * "OcrName": null,      // ocr阶段获取的姓名
 * "OcrIdCard": null,    // ocr阶段获取的身份证号
 * "OcrGender": null,    // ocr阶段获取的性别
 * "LiveStatus": null,   // 活体检测阶段的错误码。0为成功
 * "LiveMsg": null,      // 活体检测阶段的错误信息
 * "Comparestatus": null,// 一比一阶段的错误码。0为成功
 * "Comparemsg": null,   // 一比一阶段的错误信息
 * "Location": null, // 地理位置信息
 * "Extra": "",          // DetectAuth结果传进来的Extra信息
 * "Detail": {           // 活体一比一信息详情
 * "LivenessData": []
 * }
 * },
 * // 身份证正反面照片Base64
 * "IdCardData": {
 * "OcrFront": null,
 * "OcrBack": null
 * },
 * // 视频最佳帧截图Base64
 * "BestFrame": {
 * "BestFrame": null
 * },
 * // 活体视频Base64
 * "VideoData": {
 * "LivenessVideo": null
 * }
 * }
 * @method string getRequestId() 获取唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
 * @method void setRequestId(string $RequestId) 设置唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
 */

/**
 *GetDetectInfo返回参数结构体
 */
class GetDetectInfoResponse extends AbstractModel
{
    /**
     * @var string JSON字符串。
     * {
     * // 文本类信息
     * "Text": {
     * "ErrCode": null,      // 本次核身最终结果。0为成功
     * "ErrMsg": null,       // 本次核身最终结果信息描述。
     * "IdCard": "",         // 本次核身最终获得的身份证号。
     * "Name": "",           // 本次核身最终获得的姓名。
     * "OcrNation": null,    // ocr阶段获取的民族
     * "OcrAddress": null,   // ocr阶段获取的地址
     * "OcrBirth": null,     // ocr阶段获取的出生信息
     * "OcrAuthority": null, // ocr阶段获取的证件签发机关
     * "OcrValidDate": null, // ocr阶段获取的证件有效期
     * "OcrName": null,      // ocr阶段获取的姓名
     * "OcrIdCard": null,    // ocr阶段获取的身份证号
     * "OcrGender": null,    // ocr阶段获取的性别
     * "LiveStatus": null,   // 活体检测阶段的错误码。0为成功
     * "LiveMsg": null,      // 活体检测阶段的错误信息
     * "Comparestatus": null,// 一比一阶段的错误码。0为成功
     * "Comparemsg": null,   // 一比一阶段的错误信息
     * "Location": null, // 地理位置信息
     * "Extra": "",          // DetectAuth结果传进来的Extra信息
     * "Detail": {           // 活体一比一信息详情
     * "LivenessData": []
     * }
     * },
     * // 身份证正反面照片Base64
     * "IdCardData": {
     * "OcrFront": null,
     * "OcrBack": null
     * },
     * // 视频最佳帧截图Base64
     * "BestFrame": {
     * "BestFrame": null
     * },
     * // 活体视频Base64
     * "VideoData": {
     * "LivenessVideo": null
     * }
     * }
     */
    public $DetectInfo;

    /**
     * @var string 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    public $RequestId;

    /**
     * @param string $DetectInfo JSON字符串。
     * {
     * // 文本类信息
     * "Text": {
     * "ErrCode": null,      // 本次核身最终结果。0为成功
     * "ErrMsg": null,       // 本次核身最终结果信息描述。
     * "IdCard": "",         // 本次核身最终获得的身份证号。
     * "Name": "",           // 本次核身最终获得的姓名。
     * "OcrNation": null,    // ocr阶段获取的民族
     * "OcrAddress": null,   // ocr阶段获取的地址
     * "OcrBirth": null,     // ocr阶段获取的出生信息
     * "OcrAuthority": null, // ocr阶段获取的证件签发机关
     * "OcrValidDate": null, // ocr阶段获取的证件有效期
     * "OcrName": null,      // ocr阶段获取的姓名
     * "OcrIdCard": null,    // ocr阶段获取的身份证号
     * "OcrGender": null,    // ocr阶段获取的性别
     * "LiveStatus": null,   // 活体检测阶段的错误码。0为成功
     * "LiveMsg": null,      // 活体检测阶段的错误信息
     * "Comparestatus": null,// 一比一阶段的错误码。0为成功
     * "Comparemsg": null,   // 一比一阶段的错误信息
     * "Location": null, // 地理位置信息
     * "Extra": "",          // DetectAuth结果传进来的Extra信息
     * "Detail": {           // 活体一比一信息详情
     * "LivenessData": []
     * }
     * },
     * // 身份证正反面照片Base64
     * "IdCardData": {
     * "OcrFront": null,
     * "OcrBack": null
     * },
     * // 视频最佳帧截图Base64
     * "BestFrame": {
     * "BestFrame": null
     * },
     * // 活体视频Base64
     * "VideoData": {
     * "LivenessVideo": null
     * }
     * }
     * @param string $RequestId 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    public function __construct()
    {
    }

    /**
     * 内部实现，用户禁止调用
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("DetectInfo", $param) and $param["DetectInfo"] !== null) {
            $this->DetectInfo = $param["DetectInfo"];
        }

        if (array_key_exists("RequestId", $param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
